Skip to content

Feature/night mode exceptions#2809

Open
euletheia wants to merge 4 commits into
AvengeMedia:masterfrom
euletheia:feature/night-mode-exceptions
Open

Feature/night mode exceptions#2809
euletheia wants to merge 4 commits into
AvengeMedia:masterfrom
euletheia:feature/night-mode-exceptions

Conversation

@euletheia

Copy link
Copy Markdown
Contributor

Description

Add night mode exceptions (fullscreen and custom app list).

Drawing heavily on hthienloc/DankMaterialShell@de3e8cf, give the possibility to specify a list of applications excluded from Night Mode, alongside the ability to exclude fullscreen applications.

Logic is implemented on newly focused windows, and integrates with compositors overview mode so that Night Mode is resumed on overview.1

Notes

  • Abstracted the appId match function from MprisController:qml:20 to Paths.qml:154 with other (loosely-)related functions.

Type of change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that changes existing behavior)
  • Refactor / internal cleanup
  • Documentation
  • Other

Related issues

Screenshots / video2

contrib_night-mode-exceptions.webm

Checklist

  • My code follows the conventions in CONTRIBUTING.md
  • I have tested my changes locally
  • New user-facing strings are wrapped in I18n.tr() with translator context, reusing existing terms where possible
  • Go changes: ran make fmt, added/updated tests, make test passes, and go mod tidy is clean
  • QML changes: ran make lint-qml with no new warnings
  • I have opened a corresponding pull request in dlx-docs to document any new behaviors: https://github.com/AvengeMedia/DankLinux-Docs

Footnotes

  1. This means that enabling fullscreen exclusion while fullscreen will do nothing because the implementation reacts to Toplevel change (application focus).

  2. Screen gamma change is obviously not visible in the video, but "it works on my machine".

@euletheia euletheia force-pushed the feature/night-mode-exceptions branch from eca474c to 7a6dffa Compare July 10, 2026 16:37
Drawing heavily on hthienloc/DankMaterialShell@de3e8cf
(excluded media players), give the possibility to specify a list of
applications excluded from NightMode, alongside the ability to exclude
fullscreen applications.

(Logic is implemented on newly focused windows, and integrates with
compositors overview mode so that NightMode is resumed on overview.)

+ Update GammaControlTab main section to use a SettingsCard component.
…ceptions

- Use the appId matching function abstracted to Paths.qml.

- Use common appId normalization functions to append/remove from
settings list.

- Align with GammaControlTab app list input fields to fix bug where
white spaces only input would prevent field clearing on accept.

- Align with GammaControlTab and use a Loader for AppBrowserPopup so
that it can be recreated in case the popup is not closed with the
dedicated button (i.e., via the compositor).
…ecreated if closed

(Align with GammaControlTab changes)
@euletheia euletheia force-pushed the feature/night-mode-exceptions branch from 7a6dffa to 43a0917 Compare July 10, 2026 16:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant